<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Radio</title>
  <style>
    html,body{
      user-select: none;
    }
    *{
      margin: 0;
      padding: 0;
    }
    #app{
      margin: 50px;
    }

    /* 对label进行模拟.背景图片随便拼凑的，不要吐槽品味*/
    /* transition效果是做个背景切换效果，这里单纯演示而已，实际上这个过渡不加更自然*/
    label {
      display: inline-block;
      position: relative;
      overflow: hidden;
    }
    .check-area{
      display: inline-block;
      width: 15px;
      height: 15px;
      border: 1px solid #000;
      position: relative;
      overflow: hidden;
      margin-right: 10px;
    }
    .check-area::after{
      content: "";
      position: absolute;
      width: 15px;
      top: 0;
      left: 0;
      height: 15px;
      display: inline-block;
      background: url(./chose.svg);
      background-size: 15px 15px;
      background-repeat: no-repeat;
      background-position: 0 0px;
      /* transform: scaleY(0); */
      transform-origin: 100% 100%;
      transform: rotate(-90deg);
      transition: all 0.5s linear;
      -webkit-transition: all 0.15s linear;
    }
    input{
      position: absolute;
      opacity: 0;
      top: 0;
      left: 0;
    }

    /* 利用相邻选择符和checkbox`:checked`的状态伪类来模拟默认选中效果（就是点击后那个勾号的效果） */
    /*如果这段代码注释，点击后将没有任何反馈给用户*/
    /*因为label本身是没有点击后被选中的状态的，checkbox被隐藏后，这个状态只能手动模拟*/
    .has-checked>span::after {
      /* background-position: 0 -15px; */
      /* transform: scaleY(1); */
      transform: rotate(0deg);
    }
    .box{
      width: 400px;
      height: 400px;
      background-color: red;
    }
    .cat{
      width: 200px;
      height: 200px;
      background-color: purple;
    }
  </style>
</head>

<body>
  <div id="app"></div>


  <script src="./checkbox.js"></script>
  <script>
    new Checkbox({
      innerText: 'checkbox',
      container: 'app'
    })
    // var lbs = Array.from(document.getElementsByTagName('input'))
    // lbs.forEach(element => {
    //   element.addEventListener('change', checkStatus)
    // });
    // function checkStatus(e) {
    //   console.log(this);
    //   this.parentElement.classList[this.checked ? 'add' : 'remove']('has-checked')
    // }
  </script>
</body>

</html>